![]() COMPUTER IMPLEMENTED METHOD TO ENCODE A VIDEO FLOW, NON TRANSIENT, COMPUTER-READABLE MEDIUM AND COMP
专利摘要:
encoding video streams for adaptive streaming video: An embodiment of the invention features an encoding server including components configured to encode a video stream associated with a content title for adaptive streaming. The video stream is first processed by a vc' encoder to generate an encoded video stream comprising multiple gops, each a gop including a first frame and having different playback offset. The encoded video stream is then packed in such a way that gops are stored in the packed encoded stream data packets .an shi generator generates a shi associated with the packed coded stream that includes a switching point associated with a gop. each switching point includes the reproduction offset associated with the corresponding gop. The shi associated with the same content title and encoded to different reproduction bitrates have corresponding switching points. 公开号:BR112012003843B1 申请号:R112012003843-5 申请日:2010-08-17 公开日:2021-07-27 发明作者:Anthony Neal Park;Yung-Hsiao Lai;David Randall Ronca 申请人:Netflix, Inc; IPC主号:
专利说明:
REFERENCE TO RELATED ORDERS This application claims the benefit of United States Patent Application 12/543,328, filed August 18, 2009, which is incorporated herein by reference. BACKGROUND OF THE INVENTION Field of Invention The present invention relates generally to digital media and more specifically to encoding video streams for adaptive video streaming. Description of Related Art Conventional, digital content delivery systems typically include a content server, a content playback device, and a communication network connecting the content server to the content playback device. The content server is configured to store digital content files corresponding to different content titles that can be downloaded from the content server to the content playback device. Each digital content file typically includes a video stream encoded to a specific playback bit rate as well as an audio stream. As is well understood, a video stream encoded for a high playback bitrate is larger in size than a video stream encoded for a lower playback bitrate. The content playback device is configured to download and play a digital content file corresponding to a specific content title in response to a user selecting the content title for playback. Digital content file transfer typically involves a technique known in the art as "streaming", whereby the content server sequentially transmits the digital content file corresponding to the content title selected for the content layer. The content layer then plays the video stream and audio stream included in the digital content file when portions of those streams become available. Before starting the transfer of the digital content file, the content playback device can measure the bandwidth available from the content server and select a digital content file having a video stream encoded to a bit rate that can be supported by the measured available bandwidth. To the extent that the communication network can provide adequate bandwidth to download the selected digital content file, while satisfying the bit rate requirements, playback of the downloaded digital content file proceeds satisfactorily. In practice, however, the bandwidth available in the communication network is constantly changing as different devices connected to the communication network perform independent tasks. To maximize playback quality due to changing bandwidth availability, an adaptive streaming technique can be implemented. In adaptive streaming, if the bandwidth available on the communication network increases, then the content playback device transfers a different content file corresponding to the selected content title which includes a video stream encoded to a playback bit rate higher. Similarly, if the bandwidth available in the communication network decreases, then the content playback device can transfer a different content file corresponding to the selected content title which includes a video stream encoded to a lower playback bit rate. . When switching from transferring a current video stream to transferring a new video stream, the content playback device needs to match the video frame in the new video stream by matching the video frame in the current video stream being reproduced at the time of switching. To match video frames, the content playback device typically sequentially searches for the new video stream to find the video frame that matches the relevant video frame in the current video stream. One drawback to this approach is that the search operation can be very time-consuming, thus causing an interruption in the transfer of the video stream that disrupts the viewing experience for the user. As illustrated in the foregoing, what is needed in the art is a video stream encoding mechanism that allows switching between video streams that reduces the incidence of playback disruption over prior art. SUMMARY OF THE INVENTION An embodiment of the present invention provides a method for encoding a video stream associated with a content title for adaptive video streaming. The method includes the steps of applying a video codec to the video stream at a specific playback bit rate to generate a sequence of image groups (GOPs), where each GOP is associated with a playtime interval and the a different playback offset and includes an essential frame and one or more frames of video data, applying an advanced system format to the sequence of GOPs to generate one or more data packets that include the sequence of GOPs, generating an index of sequence header for the sequence of GOPs which includes a first switch point corresponding to a first GOP in the sequence of GOPs, wherein the first switch point specifies the replay offset associated with the first GOP and a first data packet that includes a first essential frame included in the first GOP, and combining the sequence header index with one or more data packets to generate an encoded video stream. An advantage of the disclosed method is that a content playback device can efficiently switch from an encoded video stream associated with a specific content title and having a specific playback bit rate to another encoded video stream associated with it. content title and having different reproduction bit rate upon identification of the appropriate switching point in the sequence header index associated with the new encoded video stream. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 illustrates a content delivery system configured to implement one or more aspects of the invention; Figure 2 is a more detailed illustration of the encryption server of Figure 1, according to an embodiment of the invention; Figure 3 is a conceptual diagram illustrating the different encoded stages of a video stream processed by the encoding server of Figure 2, according to an embodiment of the invention; Figure 4 is a more detailed illustration of the sequence header index of Figure 3, in accordance with an embodiment of the invention; Figure 5 is a flow diagram of method steps for encoding a video stream for adaptive video streaming, in accordance with an embodiment of the invention; and Figure 6 is a flow diagram of method steps for encoding and encrypting a video stream for adaptive video streaming, in accordance with another embodiment of the invention. DETAILED DESCRIPTION In the following description, several specific details are presented to provide a more complete understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention can be practiced without one or more of these specific details. In other cases, well-known features have not been described to avoid obscuring the present invention. Figure 1 illustrates a content delivery system 100 configured to implement one or more aspects of the invention. As shown, content distribution system 100 includes an encoding server 102, a communication network 104, a content distribution network (CDN) 106, and a content reproduction device 108. Communication network 104 includes various network communication systems, such as routers and switches, configured to facilitate data communication between scrambling server 102, CDN 106 and content playback device 108. Those skilled in the art will recognize that there are many feasible techniques for constructing the communication network 104, including technologies practiced in installing the well-known Internet communication network. Encoder server 102 is a computer system configured to encode video streams associated with digital content files for adaptive streaming. The encoding workflow for encoding the video streams for adaptive streaming is described in more detail below with respect to Figures 2 and 3. The content delivery system 100 may include one or more encoding servers 102, where each server encoding 102 is configured to perform all the functions necessary to encode the video streams or where each encoding server 102 is configured to perform a specific function required to encode the video streams. The digital content files including the encoded video streams are retrieved by the CDN 106 via the communication network 104 for distribution to the content reproduction device 108. The CDN 106 comprises one or more computer systems configured to service transfer requests for digital content files from the content reproduction device 108. The digital content files may reside on a mass storage system accessible to the system. computer. The mass storage system may include, without limitation, direct attached storage media, network attached file attached storage media, or network attached block-level storage media. Digital content files can be formatted and stored on the mass storage system using any practicable technique. A data transfer protocol, such as a well-known hypertext transfer protocol (HTTP), can be used to transfer digital content files from the content server 106 to the content playback device 108. The content reproduction device 108 may comprise a computer system, a frequency converter, a mobile device such as a mobile phone, or any other technically feasible computing platform that has network connectivity and is coupled with or includes a device. display and speaker device to present video frames, and generate acoustic output, respectively. The content reproduction device 108 is configured for adaptive streaming, that is, to transfer units of a video stream encoded to a specific reproduction bit rate, and to switch to transfer subsequent units of a video stream encoded to a different reproduction bit rate based on the prevailing bandwidth conditions within the communication network 104. As the bandwidth within the communication network 104 becomes limited, the content reproduction device 108 can select a stream video encoded to a lower playback bit rate. As the available bandwidth increases, a video stream encoded to a higher playback bit rate can be selected. Although, in the above description, content delivery system 100 is shown with a content playback device 108 and CDNs 106, those skilled in the art will recognize that the architecture of Figure 1 considers only one exemplary embodiment of the invention. Other embodiments may include any number of content reproduction devices 108 and/or CDNs 106. Thus, Figure 1 is in no way intended to limit the present invention in any way. Figure 2 is a more detailed illustration of the encoding server 102 of Figure 1, in accordance with an embodiment of the invention. As shown, encryption server 102 includes a central processing unit (CPU) 202, a system disk 204, an input/output (I/O) device interface 206, a network interface 208, an interconnect 210, and a system memory 212. CPU 202 is configured to retrieve and execute programming instructions stored in system memory 212. Similarly, CPU 202 is configured to store application data and retrieve application data from system memory 212. Interconnect 210 is configured to facilitate the transmission of data, such as programming instructions and application data, between the CPU 202, system disk 204, I/O device interface 206, network interface 208, and system memory 212. of I/O devices 206 is configured to receive input data from I/O devices 222 and transmit the input data to CPU 202 via interconnection 210. For example, I/O devices 222 may comprise one or more buttons, a keyboard, and a mouse or other pointing device. The I/O device interface 206 is also configured to receive output data from the CPU 202 via the interconnect 210 and transmit the output data to the I/O devices 222. The system disk 204, such as a unit hard disk or instant memory storage unit or the like, is configured to store non-volatile data such as encoded video streams. The encoded video streams can then be retrieved by the CDN 106 via the communication network 104. The network interface 218 is coupled to the CPU 202 via the interconnection 210 and is configured to transmit and receive data packets via the communication network. communication 104. In one embodiment, the network interface 208 is configured to operate in accordance with the well-known Ethernet standard. System memory 212 includes software components that include instructions for encoding one or more video streams associated with a specific content title for adaptive streaming. As shown, these software components include a VC1 encoder 214, an advanced systems format packaging tool (ASF) 216, a stuffing tool 218, and a sequence header index generator (SHI) 220. The VC1 encoder 214 performs the encoding operations to encode a video stream to the specific reproduction bit rate such that the encoded video stream conforms to the VC1 video codec standard and is configured for adaptive streaming . In an alternative embodiment, the video stream can be encoded to be compatible with a different video codec standard such as MPEG or H.264. An encoded video stream generated by VC1 encoder 214 includes a sequence of picture groups (GOPs), each GOP comprising multiple frames of video data. When encoding the video stream, the VC1 encoder 214 encodes the video stream according to three settings included in the VC1 video codec standard. First, the closed entry point setting is enabled to ensure that each GOP in the encoded video stream is independent of the other GOPs in the encoded video stream. Second, the Sequence Header Output Mode setting is enabled so that an essential frame that includes a Sequence header is inserted at the beginning of each GOP. The sequence header included in the essential frame of a GOP specifies, among other information, a sequence header start code that can be used to locate the essential frame within the encoded video stream and the resolution and aspect ratio of the frames. of video data in the GOP. Third, the adaptive GOP setting is disabled to ensure that each GOP is associated with the same playtime interval and a different playoffset. The playback offset associated with the GOP is determined based on the location in the GOP in the sequence of GOPs included in the encoded video stream. For example, in an encoded video stream where each GOP has a playback time interval of 3 seconds, a first GOP in the encoded video stream would have a 0 second playback offset, a second GOP in the encoded video stream would have a 3 second playback offset and so on. When encoded, the VC1 encoder 214 transmits the encoded video stream to the ASF packaging tool 216 for further processing. The ASF packaging tool 216 packages the encoded video stream received from the VC1 encoder 214 into an advanced systems format (ASF) compatible encoded video stream, which can be transferred and processed for playback by multiple types of video devices. playback of standards-compliant content, including content playback device 108. The ASF-compliant encoded video stream includes a data object and an ASF header. The data object stores the GOPs in one or more data packets of the same size. As the size of the data packets may not match the size of the GOPs, a specific data packet may include video data frames associated with two or more GOPs. The ASF header includes information associated with the ASF-compatible encoded video stream, such as the size and number of data packets, needed by a content playback device, such as the content playback device 108, to process the ASF compliant encoded video stream for playback. The ASF compliant encoded video stream is then processed by the padding tool 218. The padding tool 218 inserts padding into the ASF compliant encoded video stream data object to ensure that the essential frame associated with each GOP is located at the beginning from a different data packet within the data object. As described below, aligning essential frames with different data packets allows the SHI 220 generator to define switching points for the ASF compliant encoded video stream, thus enabling content playback devices to switch between multiple encoded video streams compatible with ASF efficiently. The filling tool 218 then transmits the ASF compliant encoded video stream to the SHI 220 generator. The SHI generator 220 generates a sequence header index associated with the ASF compliant encoded video stream. To generate the sequence header index, the SHI generator 220 first looks in the ASF-compliant encoded video stream data object for the essential frames associated with the different GOPs included in the data object. Essential frames can be located by the SHI generator 220 based on sequence start codes specified in the sequence headers included in the essential frames. For the GOP associated with each of the identified essential frames, the SHI generator 220 defines a switching point within the sequence header index that stores (i) a data packet number identifying the data packet that includes the essential frame. associated with the GOP and (ii) the reproduction displacement associated with the GOP. Again, the playback offset associated with the GOP is determined based on the location of the GOP in the sequence of GOPs included in the encoded video stream. Encoding server 102 can generate multiple ASF-compatible encoded video streams associated with the same content title and encoded to different playback bitrates in the manner described above. The encoding process described here ensures that across the different ASF compliant encoded video streams the GOPs are associated with the same playing time interval and that corresponding GOPs across the different ASF compliant encoded video streams are associated with the same reproduction displacements. Therefore, each switching point defined in a sequence header included in one of the ASF compliant encoded video streams associated with a specific content title has a corresponding switching point defined in a sequence header included in each of the other streams. ASF compliant encoded video associated with the same content title. Based on the sequence header indices included in two ASF compliant encoded video streams associated with the same content title, a content playback device can efficiently switch between the ASF compliant encoded video streams by identifying the appropriate switching points in the sequence header indices. When switching between a currently playing ASF compliant encoded video stream and a new ASF compliant encoded video stream, a content playback device, such as the content playback device 108, searches the included sequence header index in the new ASF-compliant encoded video stream to locate the particular switching point by specifying the playback offset associated with the next GOP to be played. The content playback device can then switch to the new ASF compliant encoded video stream and download the GOP stored in the specified data packet at the specified switching point for playback. For example, for ASF compliant encoded video streams where each GOP was associated with a 3 second play time interval, if the first GOP associated with 0 second play offset was currently playing, then the next GOP to be reproduced would be associated with the playback offset of 3 seconds. In such a scenario, the content reproduction device searches the sequence header associated with the new encoded stream looking for the particular switching point specifying a reproduction offset of 3 seconds. Upon locating the specific switching point, the content playback device would download the GOP stored in the data packet specified at the switching point for playback. In an alternative modality, padding is not inserted into the data object of the encoded video stream and therefore the essential frames of the different GOPs are not necessarily aligned with the new data packets. In such an embodiment, the sequence header index specifies the data packet including a specific essential frame, and the content playback device searches through the data packet for the essential frame. Without padding, the encoded video stream size is reduced and therefore the encoded video stream can be transferred more quickly by a content playback device. In another alternative embodiment, the ASF 216 packaging tool ensures that the data packet size across multiple encoded video streams associated with the same content title is the same size. As the ASF standard requires the size of data packets in a single encoded video stream to be identical, ensuring that data packets across multiple encoded video streams are the same size allows the content playback device to join packets together. data from multiple encoded video streams into a single encoded video stream. Figure 3 is a conceptual diagram illustrating the different encoded stages of video stream processed by the encoding server 102 of Figure 2, in accordance with an embodiment of the invention. Video stream 302 is a mezzanine type video stream associated with the specific content title as distributed by a video stream distributor when rights to the specific content title are acquired. Video stream 302 comprises a series of sequential frames of video data, such as frame 304 and frame 306. Video stream 302 is encoded by VC1 encoder 214 to generate encoded video stream 308. As previously described herein, VC1 encoder 214 encodes the mezzanine type video stream to a specific reproduction bit rate. The encoded video stream 308 is divided into multiple GOPs, such as GOP 318 and GOP 320. Each GOP includes an essential frame including a sequence header, such as essential frame 310 in GOP 318 and essential frame 314 in GOP 320. Additionally , each GOP within encoded video stream 308 is associated with the same play time interval and a different play offset. For example, if the playback time interval is 3 seconds, then the GOP 318 is associated with a playback offset of zero seconds, while the GOP 320 is associated with a playback offset of six seconds. The 308 encoded video stream is then processed by the ASF 216 packaging tool to generate an ASF 322 compliant encoded video stream. As shown, the ASF 322 compliant encoded video stream includes an ASF 324 header, a data object including data packets of the same size, such as data packet 1 and data packet 7, and an ASF 326 index. Again, the ASF 324 header includes information associated with the encoded video stream compatible with ASF 322, such as the size and number of data packets. The ASF 326 index includes index information associated with the ASF 322 compliant encoded video stream, and the data packets within the data object store the GOPs. As previously described here, as the size of the data packets does not necessarily match the size of the GOPs, a GOP can be stored across different data packets. For example, as shown, GOP 318 is stored in data packet 1, data packet 2, and partially in data packet 3. The ASF 322 compliant encoded video stream is then processed by the stuffing tool 218. Again, the stuffing tool 218 inserts padding into the data object of the ASF 322 compliant encoded video stream to ensure that the essential frame associated with each GOP is located at the beginning of a different data packet within the data object. For example, padding tool 218 inserts padding 334 into data packet 3 after GOP 318 such that essential frame 316 of GOP 323 is aligned with a new data packet, i.e., data packet 4. Similarly , the stuffing tool 218 inserts the stuffing 336 into the data packet 5 after the GOP 323 such that the essential frame 314 of the GOP 320 is aligned with a new data packet, i.e., data packet 6. When the data object of the ASF 322 compliant encoded video stream is filled, the SHI 220 generator generates a sequence header index 338 associated with the ASF 322 compliant encoded video stream. identified essentials, generator SHI 220 defines a switching point within sequence header index 338 that stores (i) a number of data packets that identify the data packet that includes the essential frame associated with the GOP and (ii) the reproduction offset associated with the GOP. Sequence header index 338 is described in more detail below in conjunction with Figure 4. When generated, the SHI 220 generator inserts the sequence header index 338 into the ASF header 324 of the ASF 322 compliant encoded video stream. Figure 4 is a more detailed illustration of the sequence header index of Figure 3, in accordance with an embodiment of the invention. As shown, the sequence header index includes one or more switch points, such as switch point 408 and switch point 410, and each switch point includes an index portion 402, an offset portion 404, and a data packet portion 406. Each switch point is associated with a specific GOP starting at a particular replay offset specified in the switch point offset portion 404, where the essential frame of that GOP is located within a data packet specified in the data packet portion 406 of the switching point. For example, switch point 408 is associated with GOP 318, and offset portion 404 of switch point 408 indicates that the playback offset for GOP 318 is zero seconds (that is, the first GOP in the video stream ) and data packet portion 406 indicates that essential frame 310 of GOP 318 is located in data packet 1. Figure 5 is a flow diagram of method steps for encoding a video stream for adaptive video streaming, in accordance with an embodiment of the invention. Although the method steps are described in conjunction with the systems for Figures 1-4, those skilled in the art will understand that any given system configured to carry out the method steps, in any order, is within the scope of the invention. Method 500 begins at step 502 where the VC1 encoder 214 performs encoding operations on a mezzanine type video stream to generate a video stream encoded to a specific reproduction bit rate. An encoded video stream generated by VC1 encoder 214 includes a sequence of picture groups (GOPs), each GOP comprising multiple frames of video data and an essential frame that includes a sequence header. Each GOP is associated with the same playtime interval and a different playoffset. Again, the playback offset associated with a GOP is determined based on the location of the GOP in the sequence of GOPs included in the encoded video stream. At step 504, the ASF packaging tool 216 processes the encoded video stream to generate an ASF-compliant encoded video stream. As previously described herein, the ASF compliant encoded video stream includes an ASF header, a data object including data packets of the same size, and optionally an ASF index. The ASF header and ASF index store information related to the ASF compliant encoded video stream such as data packet size and data packet indices. The data object stores the GOPs of the video stream encoded in the data packets. At step 506, the stuffing tool 218 inserts padding into the data object of the ASF-compliant encoded video stream to ensure that the essential frame associated with each GOP is located at the beginning of a different data packet within the data object. The filling tool 218 then transmits the ASF compliant encoded video stream to the SHI 220 generator. In step 508, the SHI generator 220 searches the data object of the ASF-compatible encoded video stream for the essential frames associated with the different GOPs included in the data object. Essential frames can be located by the SHI generator 220 based on sequence start codes specified in the sequence headers included in the essential frames. In step 510, generator SHI 220 generates a sequence header index associated with the SAF-compliant encoded video stream based on key frame locations. For the GOP associated with each of the identified essential frames, the SHI generator 220 defines a switching point within a sequence header index that stores (i) a data packet number identifying the data packet that includes the frame. essential associated with the GOP and (ii) the displacement of reproduction associated with the GOP. In step 512, the SHI generator 220 inserts the sequence header index into the ASF header of the ASF-compatible encoded video stream. In an alternative embodiment, a video stream being processed by encryption server 102 may be encrypted using a digital rights management (DRM) encryption technique during the encryption process. In DRM implementations, as the start codes and sequence header identifying the essential frames of the GOPs in an encoded video stream are also encrypted, if the technique described above were employed, the SHI 220 generator would end up looking for the essential frames based on encryption later of the sequence header start codes and thus would not be able to generate a sequence header index associated with the encoded video stream. To address this nuance of DRM implementations, the technique described below in conjunction with Figure 6 can be used as an alternative to the technique described above. Figure 6 is a flow diagram of method steps for encoding and encrypting a video stream for adaptive video streaming, in accordance with another embodiment of the invention. Although the method steps are described in conjunction with the systems for Figures 1-4, those skilled in the art will understand that any system configured to carry out the method steps, in any order, is within the scope of the invention. Method 600 begins at step 602, where the VC1 encoder 214 performs encoding operations on a mezzanine type video stream to generate a video stream encoded to a specific reproduction bit rate. An encoded video stream generated by VC1 encoder 214 includes a sequence of picture groups (GOPs), each GOP comprising multiple frames of video data and an essential frame that includes a sequence header. Each GOP is associated with the same playtime interval and a different playoffset. At step 604, the ASF packaging tool 216 processes the encoded video stream to generate an ASF-compliant encoded video stream. As previously described here, the ASF compliant encoded video stream includes an ASF header, a data object including data packets of the same size, and optionally an ASF index. The data object stores the GOPs of the video stream encoded in the data packets. In step 606, the SHI generator 220 searches the data object of the ASF-compliant encoded video stream for the essential frames associated with the different GOPs included in the data object. Essential frames can be located by the SHI generator 220 based on sequence start codes specified in the sequence headers included in the essential frames. In step 608, SHI generator 220 generates a sequence header index associated with the ASF-compatible encoded video stream based on key frame locations. For the GOP associated with each of the identified essential frames, the SHI generator 220 defines a switching point within a sequence header index that stores (i) a data packet number identifying the data packet that includes the frame. essential associated with the GOP and (ii) the displacement of reproduction associated with the GOP. In step 610, the SHI generator 220 inserts the sequence header index into the ASF header of the ASF-compatible encoded video stream. In step 612, the scrambling server 102 encrypts the ASF compliant scrambled video stream using a DRM encryption technique such as DRM PlayReady or DRM Windows Media (WMDRM). As is well known, encrypting a video stream using a DRM encryption technique can change the frame size of video data stored in each GOP. Thus, the locations of essential frames within the ASF compliant encoded video stream may change after encryption. At step 614, the SHI generator 220 locates each essential frame in the ASF-compatible encoded video stream based on the corresponding playback offset stored in the sequence header index. Again, during encryption, the location of an essential frame may change, but the playback offset associated with the GOP including the core frame does not change, thus allowing the SHI 220 generator to accurately locate the core frame based on the playback offset. . At step 616, the stuffing tool 218 inserts the stuffing into the data object of the ASF-compliant encoded video stream to ensure that the essential frame associated with each GOP is located at the beginning of a different data packet within the data object. In step 616, the SHI generator 220 modifies the sequence header index stored in the ASF header of the ASF compliant encoded video stream based on padding inserted into the encrypted ASF compliant encoded video stream data object. Specifically, generator SHI 220 modifies the data packet identifiers stored in the sequence header index to specify the data packet storing the essential frame. Thereby, the SHI generator 220 is capable of generating the sequence header index associated with the ASF compliant encoded video stream prior to DRM encryption. As the replay offsets associated with the GOPs remain identical during encryption, the SHI 220 generator is able to modify the sequence header index based on the new locations of essential frames included in the GOPs after encryption. As a result, a content playback device can efficiently switch between encrypted ASF compliant encoded video streams associated with the same content title by identifying the appropriate switching points in the sequence header indices included in the ASF compliant encoded video streams encrypted. In another alternative modality, when encrypting a video stream using WMDRM encryption, an encoding technique shown in Figure 5 can be implemented. When the sequence header index associated with the ASF compliant encoded video stream is generated, the ASF compliant encoded video stream can be encrypted using WMDRM encryption. As the WMDRM encryption technique does not change the locations of essential frames in the encrypted video stream, the sequence header index does not need to be readjusted after WMDRM encryption. As those skilled in the art will recognize, the technique of Figure 6 can also be used in WMDRM implementations. In summary, an encoding server encodes a video stream associated with a content title to identify the switching points that are specified in a sequence header index included in the encoded video stream. The switching points of two or more video streams corresponding to the same content title and encoded to different playback bitrates occur at the same playback time intervals through each of the two or more video streams. When encoding a specific video stream, the VC1 encoder within the encoding server first processes the video stream to generate an encoded video stream that is divided into one or more image groups (GOPs) of video data. Each GOP includes a sequence header followed by multiple frames of video data. The sequence header specifies the resolution and aspect ratio of the video data frames, and the video data frames within the GOP are associated with a specific playback time interval starting at a specific playback offset. When the encoded video stream is generated, the ASF marshaling tool within the encoding server bundles the encoded video stream into an ASF-compliant encoded video stream. The ASF-compliant encoded video stream includes an ASF header and a data object. The ASF header includes information associated with the encoded video stream, such as the size and number of data packets, required by a content playback device to process the encoded video stream for playback. The data object stores the GOPs in one or more data packets. The ASF packaging tool transmits the ASF compliant encoded video stream to the filling tool within the encoding server. The padding tool inserts padding into the ASF-compliant encoded video stream data object to align the sequence header of each GOP with a new data packet within the data object. When the pad is inserted into the data object, the Sequence Header Index (SHI) generator within the encoding server generates a SHI associated with the ASF-compliant encoded video video stream. For each GOP in the ASF-compliant encoded video stream, the SHI specifies the data packet including the GOP sequence header and the playback offset corresponding to the GOP. The SHI generator then inserts the SHI into the ASF header of the ASF-compliant encoded video stream. By encoding two or more video streams associated with the same content title, the encoding server 102 generates two or more ASF-compatible encoded video streams encoded to different playback bit rates in the manner described above. Essentially, through two or more ASF-compatible encoded video streams, corresponding GOPs are associated with the same time interval and the same playback offsets. Therefore, each switching point defined in a sequence header included in an ASF compliant encoded video stream associated with a specific content title has a corresponding switching point defined in a sequence header included in an ASF compliant encoded video stream. different ASF associated with the same content title. An advantage of the disclosed technique is that the content playback device can efficiently switch from an encoded video stream associated with a specific content title and having a specific playback bit rate to another encoded video stream associated with the same content title and having different reproduction bit rate upon identifying the appropriate switching point in the sequence header index associated with the new encoded video stream. As the content playback device does not have to search for the proper frame of video data included in the encoded video stream for playback, the incidence of playback disruption when switching between encoded video streams is reduced. Another advantage of the disclosed technique is that the encoded video streams generated by the encoding server are ASF compliant and therefore can be downloaded and processed for playback via any standards-compliant content playback device. While the foregoing is directed to embodiments of the present invention, other and additional embodiments of the present invention may be devised without departing from its basic scope. For example, aspects of the present invention can be implemented in hardware or software or in a combination of hardware and software. One embodiment of the present invention can be implemented as a program product for use with a computer system. The program product program(s) defines functions of the modalities (including the methods described herein) and may be contained on a variety of computer-readable storage media. Illustrative computer readable storage media include, but are not limited to: (i) non-writable storage media (eg, readable memory devices inside a computer such as CD-ROM discs readable by a CD-drive ROM, flash memory, ROM chips or any type of solid state non-volatile semiconductor memory) in which information is permanently stored; and (ii) writable storage media (for example, floppy disks within a floppy disk drive or hard disk drive or any type of solid-state random access semiconductor memory) in which information that can be changed is stored. Such computer readable storage media, when carrying computer readable instructions which direct the functions of the present invention, are embodiments of the present invention. In view of the foregoing, the scope of the present invention is determined by the following claims.
权利要求:
Claims (19) [0001] 1. Computer implemented method for encoding a video stream associated with a content title to adaptive video stream, the method comprising: applying a video codec to the video stream at a specific playback bit rate to generate a sequence of picture groups (GOPs), wherein each GOP is associated with a different play time interval and play offset and includes an essential frame and one or more frames of video data; applying an advanced system format to the string of GOPs to generate one or more data packets that include the string of GOPs; generate a sequence header index for the sequence of GOPs which includes a first switch point corresponding to a first GOP in the sequence of GOPs, where the first switch point specifies the reproduction offset associated with the first GOP and a first packet data that includes a first essential frame included in the first GOP; and combining the sequence header index with one or more data packets to generate an encoded video stream, wherein the sequence header index causes a content playback device currently playing the encoded video stream to identify the first switching point as an appropriate switching point and request the first data packet specified by the first switching point for playback. [0002] 2. Method according to claim 1, characterized in that the first essential frame includes a sequence header start code and a sequence header that stores information associated with the first GOP. [0003] 3. Method according to claim 2, characterized in that the step of generating the sequence header index comprises searching in the one or more data packets the sequence header start code included in the first essential frame to identify the first data packet. [0004] Method according to claim 1, characterized in that it further comprises the step of filling the one or more data packets to align each essential frame included in the sequence of GOPs with a different data packet. [0005] 5. Method according to claim 1, further comprising the step of encrypting the one or more data packets based on a digital rights management (DRM) encryption technique to generate one or more encrypted data packets . [0006] 6. Method according to claim 5, characterized in that the DRM encryption technique comprises a Windows Media DRM encryption technique. [0007] The method of claim 5, further comprising the steps of: based on the reproduction offset specified at the first switching point, determining whether a first encrypted data packet stores the first essential frame, wherein the first data packet and the first encrypted data packet are different data packets; and modifying the first switching point included in the sequence header index to specify whether the first encrypted data packet stores the essential first frame. [0008] The method of claim 7, further comprising the step of filling the one or more encrypted data packets to align each essential frame included in the GOP sequence with a different data packet. [0009] The method of claim 1, further comprising the steps of: applying the video codec to a second video stream at a second playback bit rate to generate a second sequence of picture groups (GOPs) , wherein each GOP is associated with a play time interval and a different play offset and includes an essential frame and one or more frames of video data; applying the advanced system format to the second sequence of GOPs to generate one or more other data packets that include the second sequence of GOPs; generating a second sequence header index for the second sequence of GOPs which includes a second switching point corresponding to a second GOP in the second sequence of GOPs, wherein the second switching point specifies the reproduction offset associated with the second GOP and a second data packet included in the one or more other data packets, and wherein the second data packet includes a second essential frame included in the second GOP; and combining the second sequence header index with the one or more other data packets to generate a second encoded video stream, wherein the playback offset associated with the second GOP is equal to the playback offset associated with the first GOP, and wherein the second switching point corresponds to the first switching point. [0010] 10. Computer-readable, non-transient medium characterized by storing instructions that, when executed by a processor, cause the processor to encode a video stream associated with a content title to an adaptive video stream, performing the steps of: applying a codec of video to a video stream at a specific playback bitrate to generate a sequence of group of images (GOPs), where each GOP is associated with a different playback time interval and playback offset and includes a essential frame and one or more frames of video data; applying an advanced system format to the string of GOPs to generate one or more data packets that include the string of GOPs; generating a sequence header index for the sequence of GOPs which includes a first switching point corresponding to a first GOP in the sequence of GOPs, wherein the first switching point specifies the reproduction offset associated with the first GOP and a first packet of data that includes a first essential frame included in the first GOP; and combining the sequence header index with one or more data packets to generate an encoded video stream, wherein the sequence header index causes a content playback device currently playing the encoded video stream to identify the first switching point as an appropriate switching point and request the first data packet specified by the first switching point for playback. [0011] 11. Computer readable medium according to claim 10, characterized in that the first essential frame includes a sequence header start code and a sequence header which stores information associated with the first GOP. [0012] 12. Computer readable medium according to claim 11, characterized in that the step of generating the sequence header index comprises searching the one or more data packets for the sequence header start code included in the first frame essential for identifying the first data packet. [0013] The computer readable medium of claim 10, further comprising the step of filling the one or more data packets to align each essential frame included in the GOP sequence with a different data packet. [0014] A computer-readable medium according to claim 10, further comprising the step of encrypting the one or more data packets based on a digital rights management (DRM) encryption technique to generate one or more packets of encrypted data. [0015] 15. A computer-readable medium according to claim 14, characterized in that the DRM encryption technique comprises a Windows Media DRM encryption technique. [0016] The computer-readable medium of claim 14, further comprising the steps of: based on the reproduction offset specified at the first switch point, determining that a first encrypted data packet stores the first essential frame, at that the first data packet and the first encrypted data packet are different data packets; and modifying the first switching point included in the sequence header index to specify whether the first encrypted data packet stores the essential first frame. [0017] The computer-readable medium of claim 16, further comprising the step of filling one or more encrypted data packets to align each essential frame included in the GOP sequence with a different data packet. [0018] The computer-readable medium of claim 10, further comprising the steps of: applying the video codec to a second video stream at a second playback bit rate to generate a second sequence of image groups (GOPs), where each GOP is associated with a playtime interval and a different playoffset and includes an essential frame and one or more frames of video data; applying the advanced system format to the second sequence of GOPs to generate one or more other data packets that include the second sequence of GOPs; generating a second sequence header index for the second sequence of GOPs which includes a second switching point corresponding to a second GOP in the second sequence of GOPs, wherein the second switching point specifies the reproduction offset associated with the second GOP and a second data packet included in one or more other data packets, and wherein the second data packet includes a second essential frame included in the second GOP; and combining the second sequence header index with one or more other data packets to generate a second encoded video stream, wherein the playback offset associated with the second GOP is equal to the playback offset associated with the first GOP, and in that the second switching point corresponds to the first switching point. [0019] 19. Computer system, characterized by comprising: a processor; and a memory storing instructions that when executed by the processor are configured to: apply a video codec to a video stream at a specific playback bit rate to generate a sequence of picture groups (GOPs) in which each GOP is associated at a different playback time interval and playback offset and includes an essential frame and one or more frames of video data, apply an advanced system format to the sequence of GOPs to generate one or more data packets that include the structure of GOPs, generating a sequence header index for the sequence of GOPs which includes a first switching point corresponding to a first GOP in the sequence of GOPs, wherein the first switching point specifies the reproduction offset associated with the first GOP and a first data packet including a first essential frame included in the first GOP, and combining the sequence header index with one or more data packets for generating an encoded video stream, where the sequence header index causes a content playback device currently playing the encoded video stream to identify the first switching point as an appropriate switching point and request the first data packet specified by the first switching point for playback.
类似技术:
公开号 | 公开日 | 专利标题 BR112012003843B1|2021-07-27|COMPUTER IMPLEMENTED METHOD TO ENCODE A VIDEO FLOW, NON TRANSIENT, COMPUTER-READABLE MEDIUM AND COMPUTER SYSTEM US20170244990A1|2017-08-24|Fast start of streaming digital media playback with deferred license retrieval US8954596B2|2015-02-10|Dynamic virtual chunking of streaming media content JP2014135749A|2014-07-24|File transmission method and device in server, and file reproduction method and device in terminal BRPI0923917B1|2021-05-25|MACHINE IMPLEMENTED METHOD, MACHINE-READABLE, NON TRANSIENT STORAGE MEDIUM, AND DATA PROCESSING SYSTEM FOR CONTINUOUS TRANSMISSION IN REAL-TIME OR NEAR REAL-TIME KR101603136B1|2016-03-14|Support for short cryptoperiods in template mode JP2003229843A|2003-08-15|Streaming system and streaming method, client terminal and contents data decoding method, stream server and stream distribution method, authoring device and authoring method, and program and recording medium WO2018076952A1|2018-05-03|Method and apparatus for storage and playback positioning of video file BR112014007669B1|2021-03-02|method and device for streaming streaming media US20120011596A1|2012-01-12|System and method of protecting digital media contents CN105282627A|2016-01-27|Method for acquiring a live video clip and server US9510026B1|2016-11-29|Apparatus and methods for generating clips using recipes with slice definitions US10028020B2|2018-07-17|File generating method and file generating apparatus KR20200016368A|2020-02-14|Staggered Key Frame Video Encoding US20130124699A1|2013-05-16|Apparatus and method for transceiving a streaming service US10484725B2|2019-11-19|Information processing apparatus and information processing method for reproducing media based on edit file TW200534719A|2005-10-16|Method and circuit for encrypting a data stream JP2009118179A|2009-05-28|Electronic device Alnesjö2018|Chunked DASH in JavaScript
同族专利:
公开号 | 公开日 IN2012DN02232A|2015-08-21| CA2771187C|2017-02-28| WO2011022432A1|2011-02-24| MX2012002087A|2012-06-12| EP2467956A4|2013-02-13| CA2771187A1|2011-02-24| BR112012003843A2|2016-03-22| JP2013502836A|2013-01-24| US8355433B2|2013-01-15| JP5499314B2|2014-05-21| CO6612207A2|2013-02-01| EP2467956B1|2015-09-30| EP2467956A1|2012-06-27| US20110268178A1|2011-11-03| CL2012000416A1|2012-08-24|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 US5623424A|1995-05-08|1997-04-22|Kabushiki Kaisha Toshiba|Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels| JP3060919B2|1995-11-16|2000-07-10|松下電器産業株式会社|Compressed video decoding / display device and simplified compressed video editing device| US6453114B2|1997-02-18|2002-09-17|Thomson Licensing Sa|Random picture decoding| US7302490B1|2000-05-03|2007-11-27|Microsoft Corporation|Media file format to support switching between multiple timeline-altered media streams| US7274661B2|2001-09-17|2007-09-25|Altera Corporation|Flow control method for quality streaming of audio/video/media over packet networks| US7263129B2|2002-08-29|2007-08-28|Sony Corporation|Predictive encoding and data decoding control| US7924921B2|2003-09-07|2011-04-12|Microsoft Corporation|Signaling coding and display options in entry point headers| US7519274B2|2003-12-08|2009-04-14|Divx, Inc.|File format for multiple track digital data| US7818444B2|2004-04-30|2010-10-19|Move Networks, Inc.|Apparatus, system, and method for multi-bitrate content streaming| US7706384B2|2007-04-20|2010-04-27|Sharp Laboratories Of America, Inc.|Packet scheduling with quality-aware frame dropping for video streaming| US8561116B2|2007-09-26|2013-10-15|Charles A. Hasek|Methods and apparatus for content caching in a video network| WO2009075766A2|2007-12-05|2009-06-18|Swarmcast, Inc.|Dynamic bit rate scaling|US6307487B1|1998-09-23|2001-10-23|Digital Fountain, Inc.|Information additive code generator and decoder for communication systems| US7068729B2|2001-12-21|2006-06-27|Digital Fountain, Inc.|Multi-stage code generator and decoder for communication systems| US9240810B2|2002-06-11|2016-01-19|Digital Fountain, Inc.|Systems and processes for decoding chain reaction codes through inactivation| US9288010B2|2009-08-19|2016-03-15|Qualcomm Incorporated|Universal file delivery methods for providing unequal error protection and bundled file delivery services| US9419749B2|2009-08-19|2016-08-16|Qualcomm Incorporated|Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes| AU2003277198A1|2002-10-05|2004-05-04|Digital Fountain, Inc.|Systematic encoding and decoding of chain reaction codes| EP2722995A3|2003-10-06|2018-01-17|Digital Fountain, Inc.|Soft-decision decoding of multi-stage chain reaction codes| US8472792B2|2003-12-08|2013-06-25|Divx, Llc|Multimedia distribution system| US7519274B2|2003-12-08|2009-04-14|Divx, Inc.|File format for multiple track digital data| EP1743431A4|2004-05-07|2007-05-02|Digital Fountain Inc|File download and streaming system| WO2006020826A2|2004-08-11|2006-02-23|Digital Fountain, Inc.|Method and apparatus for fast encoding of data symbols according to half-weight codes| US9380096B2|2006-06-09|2016-06-28|Qualcomm Incorporated|Enhanced block-request streaming system for handling low-latency streaming| US9209934B2|2006-06-09|2015-12-08|Qualcomm Incorporated|Enhanced block-request streaming using cooperative parallel HTTP and forward error correction| US9178535B2|2006-06-09|2015-11-03|Digital Fountain, Inc.|Dynamic stream interleaving and sub-stream based delivery| US9432433B2|2006-06-09|2016-08-30|Qualcomm Incorporated|Enhanced block-request streaming system using signaling or block creation| US9386064B2|2006-06-09|2016-07-05|Qualcomm Incorporated|Enhanced block-request streaming using URL templates and construction rules| KR101292851B1|2006-02-13|2013-08-02|디지털 파운튼, 인크.|Streaming and buffering using variable fec overhead and protection periods| US9270414B2|2006-02-21|2016-02-23|Digital Fountain, Inc.|Multiple-field based code generator and decoder for communications systems| US7515710B2|2006-03-14|2009-04-07|Divx, Inc.|Federated digital rights management scheme including trusted systems| US7971129B2|2006-05-10|2011-06-28|Digital Fountain, Inc.|Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems| US9237101B2|2007-09-12|2016-01-12|Digital Fountain, Inc.|Generating and communicating source identification information to enable reliable communications| US8268107B2|2007-09-21|2012-09-18|The Boeing Company|Fly away caul plate| JP5513400B2|2007-11-16|2014-06-04|ソニックアイピー,インコーポレイテッド|Hierarchical and simple index structure for multimedia files| US8997161B2|2008-01-02|2015-03-31|Sonic Ip, Inc.|Application enhancement tracks| WO2010080911A1|2009-01-07|2010-07-15|Divx, Inc.|Singular, collective and automated creation of a media guide for online content| US9281847B2|2009-02-27|2016-03-08|Qualcomm Incorporated|Mobile reception of digital video broadcasting—terrestrial services| US9917874B2|2009-09-22|2018-03-13|Qualcomm Incorporated|Enhanced block-request streaming using block partitioning or request controls for improved client-side handling| EP2507995A4|2009-12-04|2014-07-09|Sonic Ip Inc|Elementary bitstream cryptographic material transport systems and methods| US9237178B2|2010-02-03|2016-01-12|Futurewei Technologies, Inc.|Combined binary string for signaling byte range of media fragments in adaptive streaming| AU2011218489B2|2010-02-19|2015-08-13|Telefonaktiebolaget L M Ericsson |Method and arrangement for adaption in HTTP streaming| US9049497B2|2010-06-29|2015-06-02|Qualcomm Incorporated|Signaling random access points for streaming video data| US8918533B2|2010-07-13|2014-12-23|Qualcomm Incorporated|Video switching for streaming video data| US9185439B2|2010-07-15|2015-11-10|Qualcomm Incorporated|Signaling data for multiplexing video components| US9596447B2|2010-07-21|2017-03-14|Qualcomm Incorporated|Providing frame packing type information for video coding| US9456015B2|2010-08-10|2016-09-27|Qualcomm Incorporated|Representation groups for network streaming of coded multimedia data| US8612353B2|2010-09-29|2013-12-17|Verizon Patent And Licensing Inc.|Publishing ingested video content to a video provisioning system| WO2012089766A1|2010-12-30|2012-07-05|Thomson Licensing|Method of processing a video content allowing the adaptation to several types of display devices| US8914534B2|2011-01-05|2014-12-16|Sonic Ip, Inc.|Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol| US8958375B2|2011-02-11|2015-02-17|Qualcomm Incorporated|Framing for an improved radio link protocol including FEC| US9270299B2|2011-02-11|2016-02-23|Qualcomm Incorporated|Encoding and decoding using elastic codes with flexible source block mapping| US9363522B2|2011-04-28|2016-06-07|Warner Bros. Entertainment, Inc.|Region-of-interest encoding enhancements for variable-bitrate mezzanine compression| KR101840008B1|2011-06-24|2018-05-04|에스케이플래닛 주식회사|High quality video streaming service system and method| US8948249B2|2011-08-19|2015-02-03|Google Technology Holdings LLC|Encoder-aided segmentation for adaptive streaming| US9467708B2|2011-08-30|2016-10-11|Sonic Ip, Inc.|Selection of resolutions for seamless resolution switching of multimedia content| US8818171B2|2011-08-30|2014-08-26|Kourosh Soroushian|Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates| US9955195B2|2011-08-30|2018-04-24|Divx, Llc|Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels| US9253233B2|2011-08-31|2016-02-02|Qualcomm Incorporated|Switch signaling methods providing improved switching between representations for adaptive HTTP streaming| US8964977B2|2011-09-01|2015-02-24|Sonic Ip, Inc.|Systems and methods for saving encoded media streamed using adaptive bitrate streaming| US8909922B2|2011-09-01|2014-12-09|Sonic Ip, Inc.|Systems and methods for playing back alternative streams of protected content protected using common cryptographic information| US9843844B2|2011-10-05|2017-12-12|Qualcomm Incorporated|Network streaming of media data| US8935425B2|2011-10-05|2015-01-13|Qualcomm Incorporated|Switching between representations during network streaming of coded multimedia data| WO2013070802A1|2011-11-07|2013-05-16|Finitiv Corporation|System and method for indexing and annotation of video content| US8918908B2|2012-01-06|2014-12-23|Sonic Ip, Inc.|Systems and methods for accessing digital content using electronic tickets and ticket tokens| US9166864B1|2012-01-18|2015-10-20|Google Inc.|Adaptive streaming for legacy media frameworks| WO2013127426A1|2012-02-27|2013-09-06|Telefonaktiebolaget L M Ericsson |An improved method and apparatus for video content distribution| US9294226B2|2012-03-26|2016-03-22|Qualcomm Incorporated|Universal object delivery and template-based file delivery| US8826429B2|2012-04-02|2014-09-02|The Boeing Company|Information security management| US9532080B2|2012-05-31|2016-12-27|Sonic Ip, Inc.|Systems and methods for the reuse of encoding information in encoding alternative streams of video data| US9354799B2|2012-06-13|2016-05-31|Sonic Ip, Inc.|Systems and methods for adaptive streaming systems with interactive video timelines| CN103516731B|2012-06-15|2017-04-19|华为技术有限公司|Cache server service method, cache server, and system| US9197685B2|2012-06-28|2015-11-24|Sonic Ip, Inc.|Systems and methods for fast video startup using trick play streams| US9143812B2|2012-06-29|2015-09-22|Sonic Ip, Inc.|Adaptive streaming of multimedia| US10452715B2|2012-06-30|2019-10-22|Divx, Llc|Systems and methods for compressing geotagged video| EP2875417B1|2012-07-18|2020-01-01|Verimatrix, Inc.|Systems and methods for rapid content switching to provide a linear tv experience using streaming content distribution| US8914836B2|2012-09-28|2014-12-16|Sonic Ip, Inc.|Systems, methods, and computer program products for load adaptive streaming| US8997254B2|2012-09-28|2015-03-31|Sonic Ip, Inc.|Systems and methods for fast startup streaming of encrypted multimedia content| US9727321B2|2012-10-11|2017-08-08|Netflix, Inc.|System and method for managing playback of streaming digital content| US10708335B2|2012-11-16|2020-07-07|Time Warner Cable Enterprises Llc|Situation-dependent dynamic bit rate encoding and distribution of content| US9813325B2|2012-12-27|2017-11-07|Comcast Cable Communications, Llc|Information stream management| US9313510B2|2012-12-31|2016-04-12|Sonic Ip, Inc.|Use of objective quality measures of streamed content to reduce streaming bandwidth| US9191457B2|2012-12-31|2015-11-17|Sonic Ip, Inc.|Systems, methods, and media for controlling delivery of content| US9264475B2|2012-12-31|2016-02-16|Sonic Ip, Inc.|Use of objective quality measures of streamed content to reduce streaming bandwidth| CN104937583B|2013-01-18|2018-09-28|华为技术有限公司|It is a kind of to carry out adaptive method and apparatus to media content| US9357210B2|2013-02-28|2016-05-31|Sonic Ip, Inc.|Systems and methods of encoding multiple video streams for adaptive bitrate streaming| US9350990B2|2013-02-28|2016-05-24|Sonic Ip, Inc.|Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming| US10397292B2|2013-03-15|2019-08-27|Divx, Llc|Systems, methods, and media for delivery of content| US9906785B2|2013-03-15|2018-02-27|Sonic Ip, Inc.|Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata| US9344517B2|2013-03-28|2016-05-17|Sonic Ip, Inc.|Downloading and adaptive streaming of multimedia content to a device with cache assist| US9247317B2|2013-05-30|2016-01-26|Sonic Ip, Inc.|Content streaming with client device trick play index| US9094737B2|2013-05-30|2015-07-28|Sonic Ip, Inc.|Network video streaming with trick play based on separate trick play files| EP3697100A1|2013-06-05|2020-08-19|Sun Patent Trust|Data decoding method, data decoding apparatus, and data transmitting method| US9967305B2|2013-06-28|2018-05-08|Divx, Llc|Systems, methods, and media for streaming media content| US9538171B2|2013-07-23|2017-01-03|Intel Corporation|Techniques for streaming video quality analysis| ITMI20131710A1|2013-10-15|2015-04-16|Sky Italia S R L|"ENCODING CLOUD SYSTEM"| US9343112B2|2013-10-31|2016-05-17|Sonic Ip, Inc.|Systems and methods for supplementing content from a server| US20150189365A1|2013-12-26|2015-07-02|Thomson Licensing|Method and apparatus for generating a recording index| CN104869103B|2014-02-24|2018-05-18|华为终端(东莞)有限公司|Search method, terminal device and the server of multimedia file| US9866878B2|2014-04-05|2018-01-09|Sonic Ip, Inc.|Systems and methods for encoding and playing back video at different frame rates using enhancement layers| US10804958B2|2015-02-24|2020-10-13|Comcast Cable Communications, Llc|Multi-bitrate video with dynamic blocks| US10499070B2|2015-09-11|2019-12-03|Facebook, Inc.|Key frame placement for distributed video encoding| US9426543B1|2015-12-18|2016-08-23|VuclipPte. Ltd.|Server-based video stitching| US10075292B2|2016-03-30|2018-09-11|Divx, Llc|Systems and methods for quick start-up of playback| US10148989B2|2016-06-15|2018-12-04|Divx, Llc|Systems and methods for encoding video content| US10498795B2|2017-02-17|2019-12-03|Divx, Llc|Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming| US10873775B2|2017-06-12|2020-12-22|Netflix, Inc.|Staggered key frame video encoding| CN109788372B|2019-01-24|2021-06-08|维沃移动通信有限公司|Streaming media playing method and related device| US11128688B2|2019-10-16|2021-09-21|Disney Enterprises, Inc.|Transcoder conditioning for segment fluidity|
法律状态:
2019-01-08| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]| 2019-12-24| B15K| Others concerning applications: alteration of classification|Free format text: A CLASSIFICACAO ANTERIOR ERA: H04J 1/16 Ipc: H04N 21/2343 (2011.01), H04N 21/236 (2011.01), H04 | 2019-12-24| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]| 2021-05-11| B09A| Decision: intention to grant [chapter 9.1 patent gazette]| 2021-07-27| B16A| Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]|Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 17/08/2010, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO. |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 US12/543,328|US8355433B2|2009-08-18|2009-08-18|Encoding video streams for adaptive video streaming| US12/543,328|2009-08-18| PCT/US2010/045805|WO2011022432A1|2009-08-18|2010-08-17|Encoding video streams for adaptive video streaming| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|